package com.sky.business.sys.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

@Data
@TableName(value = "d_system_config", autoResultMap = true)
public class SystemConfig implements Serializable {

    @Serial
    private static final long serialVersionUID = -2069724533354496333L;

    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "ID")
    private Integer id;

    /**
     * 边缘中心id
     */
    @TableField(value = "edge_id")
    @Schema(description = "边缘中心名称")
    private String edgeId;

    /**
     * 边缘中心ip地址
     */
    @TableField(value = "edge_ip")
    @Schema(description = "边缘中心IP")
    private String edgeIp;

    /**
     * 边缘中心名称
     */
    @TableField(value = "edge_name")
    @Schema(description = "边缘中心名称")
    private String edgeName;

    /**
     * 移动任务下发主题
     */
    @TableField(value = "cmcc_dispatcher_topic")
    @Schema(description = "移动任务下发topic")
    private String cmccDispatcherTopic;

    /**
     * 移动接收心跳主题
     */
    @TableField(value = "cmcc_reporting_topic")
    @Schema(description = "移动心跳上报topic")
    private String cmccReportingTopic;

    /**
     * 移动MQTT服务地址
     */
    @TableField(value = "cmcc_mqtt_service_host")
    @Schema(description = "移动MQTT服务地址")
    private String cmccMQTTServiceHost;

    /**
     * 移动MQTT服务端口
     */
    @TableField(value = "cmcc_mqtt_service_port")
    @Schema(description = "移动MQTT服务端口")
    private String cmccMQTTServicePort;

    /**
     * 移动MQTT服务用户名
     */
    @TableField(value = "cmcc_mqtt_service_username")
    @Schema(description = "移动MQTT服务用户名")
    private String cmccMQTTServiceUsername;

    /**
     * 移动MQTT服务密码
     */
    @TableField(value = "cmcc_mqtt_service_password")
    @Schema(description = "移动MQTT服务密码")
    private String cmccMQTTServicePassword;

    /**
     * 连接移动的MQTT服饰使用的clientId
     */
    @TableField(value = "cmcc_mqtt_client_id")
    @Schema(description = "移动MQTT服务连接ID")
    private String cmccMQTTClientId;

    /**
     * 本地MQTT服务服务地址
     */
    @TableField(value = "local_mqtt_service_host")
    @Schema(description = "控制中心MQTT服务地址")
    private String localMQTTServiceHost;

    /**
     * 本地MQTT服务服务端口
     */
    @TableField(value = "local_mqtt_service_port")
    @Schema(description = "控制中心MQTT服务端口")
    private String localMQTTServicePort;

    /**
     * 本地MQTT服务用户名
     */
    @TableField(value = "local_mqtt_service_username")
    @Schema(description = "控制中心MQTT服务用户名")
    private String localMQTTServiceUsername;

    /**
     * 本地MQTT服务密码
     */
    @TableField(value = "local_mqtt_service_password")
    @Schema(description = "控制中心MQTT服务密码")
    private String localMQTTServicePassword;


    /**
     * 连接本地MQTT使用的clientId
     */
    @TableField(value = "local_mqtt_client_id")
    @Schema(description = "控制中心MQTT服务连接ID")
    private String localMQTTClientId;


    /**
     * 本地MQTT心跳上报Topic
     */
    @TableField(value = "local_reporting_topic")
    @Schema(description = "控制中心MQTT服务心跳上报Topic")
    private String localReportingTopic;

    /**
     * 跟踪模块请求的控制中心地址
     */
    @TableField(value = "control_service_host")
    @Schema(description = "控制中心服务请求地址")
    private String controlServiceHost;

    /**
     * 跟踪模块请求控制中心端口
     */
    @TableField(value = "control_service_port")
    @Schema(description = "控制中心服务请求端口")
    private String controlServicePort;


    /**
     * 水平移动阈值
     */
    @TableField(value = "horizontal_move_threshold")
    @Schema(description = "水平移动阈值")
    private String horizontalMoveThreshold = "96";

    /**
     * 垂直移动阈值
     */
    @TableField(value = "vertical_move_threshold")
    @Schema(description = "垂直移动阈值")
    private String verticalMoveThreshold = "72";

    /**
     * 无人机真实宽
     */
    @TableField(value = "obj_width")
    @Schema(description = "无人机真实宽")
    private String objWidth = "0.183";

    /**
     * 无人机真实高
     */
    @TableField(value = "obj_height")
    @Schema(description = "无人机真实高")
    private String objHeight = "0.08";

    /**
     * 无人机在画面的比例
     */
    @TableField(value = "ratio")
    @Schema(description = "无人机在画面中的比例")
    private String ratio = "0.02";

    /**
     * 最小变倍比例
     */
    @Schema(description = "设备最小变倍比例", defaultValue = "0.6")
    @TableField(value = "min_zoom_ratio")
    private String minZoomRatio = "0.6";

    /**
     * 最大变倍比例
     */
    @Schema(description = "设备最大变倍比例", defaultValue = "1.4")
    @TableField(value = "max_zoom_ratio")
    private String maxZoomRatio = "1.4";

    /**
     * 最小变倍距离
     */
    @Schema(description = "最小变倍距离", defaultValue = "40")
    @TableField(value = "min_zoom_distance")
    private String minZoomDistance = "40";

    /**
     * 证书目录
     */
    @Schema(description = "证书路径")
    @TableField(value = "certificate_path")
    private String certificatePath;

}
